using System.Drawing;

namespace OffsetPath
{
    public class ClassT
    {
        public bool a;
        public bool b = true;
        public PuntoDueD c = new PuntoDueD(0.0, 0.0);
        public ClassAb d = new ClassAb(0.0, 0.0, 0.0, 0.0);
        public ClassAb e = new ClassAb(0.0, 0.0, 0.0, 0.0);
        public PuntoDueD f = new PuntoDueD(0.0, 0.0);
        public Rectangle g = new Rectangle(0, 0, 0, 0);

        public void MethodA()
        {
            this.e.g(this.d);
            float num = ((float) this.g.Width) / ((float) this.g.Height);
            float num2 = ((float) this.d.l()) / ((float) this.d.n());
            if (num2 >= num)
            {
                this.f.X = ((float) this.g.Width) / ((float) this.d.l());
                this.f.Y = this.f.X;
                this.e.e((double) (num2 / num));
            }
            else
            {
                this.f.Y = ((float) this.g.Height) / ((float) this.d.n());
                this.f.X = this.f.Y;
                this.e.MethodB((double) (num / num2));
            }
            if (this.a)
            {
                this.f.X = -this.f.X;
            }
            if (this.b)
            {
                this.f.Y = -this.f.Y;
            }
            PuntoDueD puntoDueD = this.d.MethodB();
            Point point = new Point(this.g.X + (this.g.Width / 2), this.g.Y + (this.g.Height / 2));
            this.c.X = puntoDueD.X - (((double) point.X) / this.f.X);
            this.c.Y = puntoDueD.Y - (((double) point.Y) / this.f.Y);
        }

        public void MethodA(ClassAtPuntoIncrementale A_0)
        {
            this.d.p(new ClassAtPuntoIncrementale(A_0.a / this.f.X, A_0.b / this.f.Y));
        }

        public void MethodA(double A_0)
        {
            this.d.f(A_0);
        }

        public PuntoDueD MethodA(Point A_0)
        {
            return new PuntoDueD(this.c.X + (((double) A_0.X) / this.f.X), this.c.Y + (((double) A_0.Y) / this.f.Y));
        }

        public Point MethodA(PuntoDueD A_0)
        {
            return new Point((int) ((A_0.X - this.c.X) * this.f.X), (int) ((A_0.Y - this.c.Y) * this.f.Y));
        }

        public void MethodB(ClassAtPuntoIncrementale A_0)
        {
            this.d.p(A_0);
        }

        ~ClassT()
        {
        }
    }
}

